﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ServiceModel;
using ScrumLite.Services;
using ScrumLite.Services.Contracts;
using System.Collections.ObjectModel;

namespace ScrumLite.Gateways
{
    public class ProjectsServiceClient : ClientBase<IProjectsService>, IProjectsService
    {

        public Project[] GetProjects()
        {
            return base.Channel.GetProjects();
        }

        public string GetProjectName(string projectId)
        {
            return base.Channel.GetProjectName(projectId);
        }

        public string GetProjectRepository(string projectId)
        {
            return base.Channel.GetProjectRepository(projectId);
        }

        public void Add(Project project)
        {
            base.Channel.Add(project);
        }

        public PersonAssignation[] GetPersonsInProject(string projectId)
        {
            return base.Channel.GetPersonsInProject(projectId);
        }

        public string GetUriProjectSpecificMetrics(string projectId)
        {
            return base.Channel.GetUriProjectSpecificMetrics(projectId);
        }

        public Project GetProject(string projectId)
        {
            return base.Channel.GetProject(projectId);
        }

        public Project GetProjectByName(string projectName)
        {
            return base.Channel.GetProjectByName(projectName);
        }

        public void AddPersonToProject(string projectId, TeamMember person)
        {
            base.Channel.AddPersonToProject(projectId, person);
        }

        public void RemovePersonFromProject(string projectId, string personId)
        {
            base.Channel.RemovePersonFromProject(projectId, personId);
        }

        public CheckStatus[] CheckCompliance(string projectId)
        {
            return base.Channel.CheckCompliance(projectId);
        }

        public void Update(Project project)
        {
            base.Channel.Update(project);
        }
    }
}
